package a02_Thread;

import com.sun.javafx.stage.StageHelper;

/**
 * @Author quan
 * @Description 线程状态
 * @Date 2023/4/28 14:43
 */
public class Demo9_State {
    public static void main(String[] args) throws InterruptedException {
        //创建线程
        Thread thread = new Thread(()->{
            //第一种情况
//            try {
//                Thread.sleep(3000);
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
            //第二种情况
            for (int i = 0; i < 1000_0000_00; i++) {
                // 啥也不干，等着让他结束
            }
            System.out.println("线程结束");
        });
        //情况1：在启动start之前打印一下线程状态
        System.out.println("启动之前的状态："+thread.getState());
        //启动线程
        //情况2：打印启动start之后的状态
        //等待一会，给系统创建PCB的时间
        thread.start();
//        Thread.sleep(2000);
        System.out.println("启动之后的状态："+ thread.getState());
        //等待线程结束
        thread.join();
        System.out.println("PCB是否存活：" + thread.isAlive());
        System.out.println("线程执行完后的状态："+ thread.getState());
    }
}
